스트림 제어 전송 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
스트림 제어 전송 프로토콜(SCTP)은 IETF의 SIGTRAN 워킹 그룹에서 2000년에 정의되었으며, IP 네트워크를 통해 전화 통신 신호 전송을 위해 설계되었으나, 이후 다양한 응용 분야로 확장되었다. RFC 9260이 최신 표준이며, 메시지 기반, 멀티 스트리밍, 멀티호밍 지원, 신뢰성 있는 전송, 부분 신뢰성, 경로 선택 및 모니터링, 보안 등 다양한 특징을 갖는다. SCTP는 LTE 및 5G 이동통신망 제어 신호 송수신에 사용되며, FreeBSD, Mac OS X, Microsoft Windows, Linux 등 여러 운영체제에서 구현된다. UDP 터널링을 통해 네이티브 SCTP 지원이 없는 환경에서도 사용 가능하며, 향후 6G 통신 기술 발전과 함께 역할이 확대될 것으로 예상된다.
더 읽어볼만한 페이지
- 전송 계층 프로토콜 - 사용자 데이터그램 프로토콜
사용자 데이터그램 프로토콜(UDP)은 연결 설정 없이 데이터를 전송하는 비연결형 전송 프로토콜로, 메시지 전달 보장은 상위 계층에 맡기지만 속도가 중요한 애플리케이션에서 널리 사용된다. - 전송 계층 프로토콜 - 전송 제어 프로토콜
전송 제어 프로토콜(TCP)은 인터넷 모델의 전송 계층에서 신뢰성 있는 통신을 제공하며 순서 보장, 오류 검출, 흐름 및 혼잡 제어 기능을 수행하는 프로토콜로, 웹 브라우징 등 다양한 인터넷 응용 프로그램에서 사용되고 TCP/IP 모델의 핵심이다. - 스트리밍 - 실시간 전송 프로토콜
실시간 전송 프로토콜(RTP)은 스트리밍 미디어의 실시간 전송을 위해 설계된 프로토콜로, IP 네트워크에서 오디오/비디오 전송의 표준으로 사용되며, 멀티미디어 데이터 전송, 타임스탬프, 순서 제어, QoS 피드백 등을 제공한다. - 스트리밍 - 페이스북 워치
페이스북 워치는 페이스북에서 제공하는 주문형 비디오 서비스로, 오리지널 프로그램과 라이선스 콘텐츠를 제공하며 광고 수익을 창출한다. - 인터넷 표준 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다. - 인터넷 표준 - IPv6
IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다.
스트림 제어 전송 프로토콜 |
---|
2. 역사
IETF의 시그널링 전송(SIGTRAN) 워킹 그룹은 2000년에 스트림 제어 전송 프로토콜(SCTP)을 처음 정의하였다.[1][2] SCTP는 원래 IP 네트워크를 통해 전화 통신(SS7) 시그널링을 전송하기 위해 설계되었지만, 이후 다양한 응용 분야로 확장되었다. 초기 RFC 2960은 이후 RFC 4960, RFC 9260 등으로 여러 차례 업데이트되었다. IETF 전송 영역(TSVWG) 워킹 그룹에서 SCTP를 관리한다.
2. 1. 관련 RFC 문서
RFC 번호 | 제목 | 비고 |
---|---|---|
RFC 9260 | 스트림 제어 전송 프로토콜 | 최신 표준 |
RFC 4960 | 스트림 제어 전송 프로토콜 | RFC 9260에 의해 폐지됨 |
RFC 3286 | 스트림 제어 전송 프로토콜 소개 | |
RFC 7053 | 스트림 제어 전송 프로토콜을 위한 SACK-IMMEDIATELY 확장 | RFC 4960 업데이트, RFC 9260에 의해 폐지됨 |
RFC 6525 | 스트림 제어 전송 프로토콜(SCTP) 스트림 재구성 | |
RFC 6458 | 스트림 제어 전송 프로토콜(SCTP)용 소켓 API 확장 | |
RFC 6096 | 스트림 제어 전송 프로토콜(SCTP) 청크 플래그 등록 | RFC 4960 업데이트, RFC 9260에 의해 폐지됨 |
RFC 5062 | 스트림 제어 전송 프로토콜(SCTP)에 대한 보안 공격과 현재의 대응책 | |
RFC 5061 | 스트림 제어 전송 프로토콜(SCTP) 동적 주소 재구성 | |
RFC 5043 | 스트림 제어 전송 프로토콜(SCTP) 직접 데이터 배치(DDP) 적응 | |
RFC 4895 | 스트림 제어 전송 프로토콜(SCTP)용 인증된 청크 | |
RFC 4820 | 스트림 제어 전송 프로토콜(SCTP)용 패딩 청크 및 매개변수 | |
RFC 4460 | 스트림 제어 전송 프로토콜(SCTP) 사양 오류 및 문제점 | RFC 9260에 의해 폐지됨 |
RFC 3873 | 스트림 제어 전송 프로토콜(SCTP) 관리 정보 베이스(MIB) | |
RFC 3758 | 스트림 제어 전송 프로토콜(SCTP) 부분 신뢰성 확장 | |
RFC 3554 | IPsec를 사용한 스트림 제어 전송 프로토콜(SCTP) 사용에 관하여 | |
RFC 3436 | 스트림 제어 전송 프로토콜을 통한 전송 계층 보안 | |
RFC 3309 | 스트림 제어 전송 프로토콜(SCTP) 체크섬 변경 | RFC 4960에 의해 폐지됨 |
RFC 3257 | 스트림 제어 전송 프로토콜 적용 진술 | |
RFC 2960 | 스트림 제어 전송 프로토콜 | RFC 3309에 의해 업데이트, RFC 4960에 의해 폐지됨 |
RFC 8540 | 스트림 제어 전송 프로토콜: RFC 4960의 오류 및 문제점 | RFC 9260에 의해 폐지됨 |
RFC 7829 | SCTP-PF: 스트림 제어 전송 프로토콜을 위한 빠른 페일오버 알고리즘 | |
RFC 7765 | TCP 및 스트림 제어 전송 프로토콜(SCTP) RTO 재시작 | |
RFC 7496 | 부분적으로 신뢰할 수 있는 스트림 제어 전송 프로토콜 확장을 위한 추가 정책 | |
RFC 6951 | 종단 호스트 간 통신을 위한 스트림 제어 전송 프로토콜(SCTP) 패킷의 UDP 캡슐화 |
IETF의 시그널링 전송(SIGTRAN) 워킹 그룹은 2000년 10월에 해당 프로토콜(번호 132[1])을 정의했으며,[2] IETF 전송 영역(TSVWG) 워킹 그룹에서 이를 관리한다.
3. 특징
SCTP는 중복 경로를 제공하여 신뢰성을 높인다. 비대칭 멀티호밍에서 두 종단점 중 하나는 멀티호밍을 지원하지 않을 수 있다. 로컬 멀티호밍 및 원격 싱글 호밍에서 원격 기본 주소에 도달할 수 없는 경우, 대체 경로가 있더라도 SCTP 연결이 실패한다.
SCTP 설계자는 원래 IP를 통한 전화 통신(예: SS7) 전송을 의도했으며, IP에서 SS7 시그널링 네트워크의 신뢰성 속성을 복제하는 것을 목표로 했다. 이 IETF 노력은 SIGTRAN으로 알려져 있다. 그 동안 Diameter 프로토콜 및 RSerPool과 같은 다른 용도가 제안되었다.
TCP는 인터넷을 통해 데이터를 안정적으로 전송하는 주요 수단을 제공해 왔지만, 다음과 같은 제한 사항이 있었다.
SCTP의 채택은 인지 부족, 구현 부족(특히 Microsoft Windows에서), 애플리케이션 지원 부족 및 네트워크 지원 부족으로 인해 늦어졌다.[7]
4. 패킷 구조
SCTP 패킷은 두 가지 기본 섹션으로 구성된다.
# 처음 12바이트를 차지하는 '''공통 헤더'''(파란색으로 강조 표시).
# 패킷의 나머지 부분을 차지하는 '''데이터 청크'''. 첫 번째 청크는 녹색으로 강조 표시되고, ''N''개의 청크 중 마지막 청크(청크 N)는 빨간색으로 강조 표시된다.
비트 | 0–7 | 8–15 | 16–23 | 24–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 출발지 포트 | 목적지 포트 | ||||||||||||||||||||||||||||||
32 | 확인 태그 | |||||||||||||||||||||||||||||||
64 | 체크섬 | |||||||||||||||||||||||||||||||
96 | 청크 1 타입 | 청크 1 플래그 | 청크 1 길이 | |||||||||||||||||||||||||||||
128 | 청크 1 데이터 | |||||||||||||||||||||||||||||||
… | … | |||||||||||||||||||||||||||||||
… | 청크 N 타입 | 청크 N 플래그 | 청크 N 길이 | |||||||||||||||||||||||||||||
… | 청크 N 데이터 |
각 청크는 1바이트 타입 식별자로 시작하며, RFC 9260에서 15개의 청크 타입이 정의되어 있고, 추가 RFC에서 최소 5개가 더 정의되어 있다.[9] 각 청크는 8개의 플래그 비트, 2바이트 길이 필드 및 데이터로 구성된다. 청크가 4바이트의 배수를 형성하지 않으면 0으로 채워지며, 이는 청크 길이에 포함되지 않는다. 2바이트 길이 필드는 각 청크를 최대 65,535바이트(타입, 플래그 및 길이 필드 포함)로 제한한다.
5. 보안
SCTP는 원래 설계에 암호화가 포함되지 않았지만, SYN 플러드 공격을 방지하기 위한 4단계 핸드셰이크(TCP 3단계 핸드셰이크에 비해) 및 연결 검증 및 진위 확인을 위한 대형 "쿠키"와 같은 보안 개선 기능을 염두에 두고 설계되었다.[1]
신뢰성은 SCTP 보안 설계의 핵심 요소이기도 하다.[1] 멀티호밍은 일부 경로와 인터페이스가 다운되어도 연결이 열린 상태를 유지할 수 있게 해준다.[1] 이는 SIGTRAN이 SCTP를 사용하여 IP 네트워크를 통해 SS7을 전송하고 네트워크 이상을 견디는 동안에도 통신 서비스를 유지하기 위해 링크 중단 시 강력한 복원력을 필요로 하므로 특히 중요하다.[1]
SCTP는 때때로 훌륭한 지문 인식 후보가 된다.[1] 일부 운영 체제는 SCTP 지원을 활성화하여 제공하며, TCP 또는 UDP만큼 널리 알려져 있지 않기 때문에 방화벽 및 침입 탐지 구성에서 간과되는 경우가 있어 프로빙 트래픽을 허용하는 경우가 많다.[1]
6. 구현
다음은 SCTP를 구현하는 운영 체제 목록이다.
운영 체제 | 비고 |
---|---|
AIX | 버전 5 이상 |
NetBSD | 8.0 이상[12] |
시스코 IOS | 12 이상 |
DragonFly BSD | 버전 1.4부터 지원, 버전 4.2에서 지원 중단[13] |
FreeBSD | 버전 7 이상, 참조 SCTP 구현 포함[14] |
HP-UX | 11i v2 이상[15] |
illumos | |
리눅스 | 커널 2.4 이상 |
QNX Neutrino 실시간 OS | 6.3.0부터 6.3.2까지, 6.4.0부터는 더 이상 사용되지 않음[17] |
Tru64 | Compaq SCTP 애드온 패키지 사용 |
Sun Solaris | 10 이상[18] |
VxWorks | 버전 6.2.x ~ 6.4.x 및 6.7 이상 |
타사 드라이버는 다음과 같다.
- Microsoft Windows: SctpDrv 커널 드라이버는 BSD SCTP 스택을 Windows로 포팅한 것이나, 2012년 이후 중단되었다.[19]
- MacOS: Mac OS X용 SCTP 네트워크 커널 확장[20]
사용자 공간 라이브러리는 다음과 같다.
다음은 SCTP를 구현하는 애플리케이션이다.
- WebRTC
- NetFlow
7. UDP 터널링
운영 체제에서 네이티브 SCTP 지원이 없는 경우, UDP를 통해 SCTP를 터널링하는 것이 가능하며,[24] 기존 애플리케이션이 수정 없이 SCTP를 사용할 수 있도록 TCP API 호출을 SCTP 호출에 매핑할 수도 있다.[25]
참조
[1]
웹사이트
Protocol Numbers
https://www.iana.org[...]
IANA
2014-09-09
[2]
간행물
Stream Control Transmission Protocol
IETF
2000-10
[3]
문서
The [[SCTP packet structure#DATA chunk|DATA chunk]] uses a sequence number for ordered messages, the [[SCTP packet structure#I-DATA chunk|I-DATA chunk]], which solves some problems with the original DATA chunk, uses a message-id for all messages
[4]
간행물
Diameter Base Protocol
IETF
2012-05-18
[5]
간행물
An Overview of Reliable Server Pooling Protocols
IETF
[6]
문서
RFC 9260, section 1.5.5
https://tools.ietf.o[...]
[7]
뉴스
What About Stream Control Transmission Protocol (SCTP)?
http://www.networkwo[...]
2017-10-04
[8]
서적
EPC and 4G packet networks: driving the mobile broadband revolution
Elsevier/AP, Academic Press is an imprint of Elsevier
2013
[9]
문서
See [[SCTP packet structure]] for more details.
[10]
웹사이트
Reference Implementation for SCTP - RFC4960
https://github.com/s[...]
2013-10-14
[11]
웹사이트
sys/netinet/sctp.h
http://bxr.su/n/sys/[...]
NetBSD
2019-01-21
[12]
웹사이트
man4/sctp.4
http://bxr.su/n/shar[...]
NetBSD
2019-01-21
[13]
웹사이트
DragonFly Removes SCTP
http://lists.dragonf[...]
2016-04-28
[14]
웹사이트
About FreeBSD's Technological Advances
http://www.freebsd.o[...]
The FreeBSD Project
2008-09-13
[15]
웹사이트
Stream Control Transmission Protocol (SCTP)
http://h20293.www2.h[...]
Hewlett-Packard Development Company
[16]
웹사이트
TCP/IP Networking
http://www.qnx.com/d[...]
QNX Software Systems
2008-09-13
[17]
웹사이트
QNX Software Development Platform 6.4.0
http://www.qnx.com/d[...]
[18]
웹사이트
Solaris 10 Operating System Networking — Extreme Network Performance
http://www.sun.com/s[...]
Sun Microsystems
2008-09-13
[19]
웹사이트
SctpDrv: an SCTP driver for Microsoft Windows
http://www.bluestop.[...]
2022-01-04
[20]
웹사이트
SCTP Network Kernel Extension for Mac OS X
https://github.com/s[...]
2021-09-23
[21]
웹사이트
sctplab/usrsctp
https://github.com/s[...]
2021-09-21
[22]
웹사이트
SCTP Download Page
http://www.sctp.de/s[...]
2011-02-04
[23]
웹사이트
Windows SCTP library installer
http://www.sctp.be/s[...]
2011-02-04
[24]
간행물
UDP Encapsulation of Stream Control Transmission Protocol (SCTP) Packets for End-Host to End-Host Communication
IETF
2013-05
[25]
웹사이트
Transparent TCP-to-SCTP Translation Shim Layer
http://www.cis.udel.[...]
2008-09-13
[26]
간행물
Happy Eyeballs: Success with Dual-Stack Hosts
https://tools.ietf.o[...]
IETF
2012-04
[27]
웹사이트
Happy Eyeballs for Transport Selection
https://tools.ietf.o[...]
IETF
2017-01-09
[28]
문서
https://www.nttdocomo.co.jp/binary/pdf/corporate/technology/rd/technical_journal/bn/vol19_1/vol19_1_011jp.pdf
https://www.nttdocom[...]
[29]
웹인용
Protocol Numbers
//www.iana.org/assig[...]
IANA
2014-09-09
[30]
문서
SCTP 표준 1.2절
https://tools.ietf.o[...]
[31]
간행물
Stream Control Transmission Protocol
국제 인터넷 표준화 기구
2000-10
[32]
간행물
UDP Encapsulation of Stream Control Transmission Protocol (SCTP) Packets for End-Host to End-Host Communication
국제 인터넷 표준화 기구
2013-05
[33]
웹인용
Transparent TCP-to-SCTP Translation Shim Layer
http://www.cis.udel.[...]
2008-09-13
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com